\hypertarget{classShipCAD_1_1SubdivisionFace}{}\section{Ship\+C\+AD\+:\+:Subdivision\+Face Class Reference}
\label{classShipCAD_1_1SubdivisionFace}\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}


{\ttfamily \#include $<$subdivface.\+h$>$}

Inheritance diagram for Ship\+C\+AD\+:\+:Subdivision\+Face\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classShipCAD_1_1SubdivisionFace}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classShipCAD_1_1SubdivisionFace_a082f81f7a5750f7e53ed5a92ddc82350}{Subdivision\+Face} (\hyperlink{classShipCAD_1_1SubdivisionSurface}{Subdivision\+Surface} $\ast$owner)
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
virtual \hyperlink{classShipCAD_1_1SubdivisionFace_a8d6c25b6b03eddb875c25e8cee6ca976}{$\sim$\+Subdivision\+Face} ()
\item 
void \hyperlink{classShipCAD_1_1SubdivisionFace_a16d5e005d1c7c847ccf9ba72b67142fa}{flip\+Normal} ()
\begin{DoxyCompactList}\small\item\em swap normal vector to other face \end{DoxyCompactList}\item 
void \hyperlink{classShipCAD_1_1SubdivisionFace_a553df49a1137f89d2df2846ffca74842}{add\+Point} (\hyperlink{classShipCAD_1_1SubdivisionPoint}{Subdivision\+Point} $\ast$point)
\begin{DoxyCompactList}\small\item\em add a point to the face \end{DoxyCompactList}\item 
void \hyperlink{classShipCAD_1_1SubdivisionFace_aacd383eb085c4f6b92db89e25be6b3a1}{insert\+Point} (size\+\_\+t index, \hyperlink{classShipCAD_1_1SubdivisionPoint}{Subdivision\+Point} $\ast$point)
\begin{DoxyCompactList}\small\item\em insert a new point into the face \end{DoxyCompactList}\item 
virtual void \hyperlink{classShipCAD_1_1SubdivisionFace_a413ae7e76f559780c8a69e998974fb75}{clear} ()
\begin{DoxyCompactList}\small\item\em reset point attributes to default values \end{DoxyCompactList}\item 
virtual void \hyperlink{classShipCAD_1_1SubdivisionFace_a934edbf44e524a2ec250f896c3cc182d}{subdivide} (bool controlface, std\+::vector$<$ std\+::pair$<$ \hyperlink{classShipCAD_1_1SubdivisionPoint}{Subdivision\+Point} $\ast$, \hyperlink{classShipCAD_1_1SubdivisionPoint}{Subdivision\+Point} $\ast$ $>$ $>$ \&vertexpoints, std\+::vector$<$ std\+::pair$<$ \hyperlink{classShipCAD_1_1SubdivisionEdge}{Subdivision\+Edge} $\ast$, \hyperlink{classShipCAD_1_1SubdivisionPoint}{Subdivision\+Point} $\ast$ $>$ $>$ \&edgepoints, std\+::vector$<$ std\+::pair$<$ \hyperlink{classShipCAD_1_1SubdivisionFace}{Subdivision\+Face} $\ast$, \hyperlink{classShipCAD_1_1SubdivisionPoint}{Subdivision\+Point} $\ast$ $>$ $>$ \&facepoints, std\+::vector$<$ \hyperlink{classShipCAD_1_1SubdivisionEdge}{Subdivision\+Edge} $\ast$ $>$ \&interioredges, std\+::vector$<$ \hyperlink{classShipCAD_1_1SubdivisionEdge}{Subdivision\+Edge} $\ast$ $>$ \&controledges, std\+::vector$<$ \hyperlink{classShipCAD_1_1SubdivisionFace}{Subdivision\+Face} $\ast$ $>$ \&dest)
\begin{DoxyCompactList}\small\item\em subdivide the face \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{classShipCAD_1_1SubdivisionFace_abd79b6dfadd10befe94b524a34063b27}{number\+Of\+Points} () const 
\begin{DoxyCompactList}\small\item\em number of points for this face \end{DoxyCompactList}\item 
bool \hyperlink{classShipCAD_1_1SubdivisionFace_a02d048ba8de79787bc692e5f20fd276e}{has\+Point} (const \hyperlink{classShipCAD_1_1SubdivisionPoint}{Subdivision\+Point} $\ast$pt) const 
\begin{DoxyCompactList}\small\item\em does the face have this point \end{DoxyCompactList}\item 
\hyperlink{classShipCAD_1_1SubdivisionPoint}{Subdivision\+Point} $\ast$ \hyperlink{classShipCAD_1_1SubdivisionFace_a68bc7676c4f254ddb19e04f8cb5ba76f}{get\+Point} (size\+\_\+t index) const 
\begin{DoxyCompactList}\small\item\em get face point \end{DoxyCompactList}\item 
\hyperlink{classShipCAD_1_1SubdivisionPoint}{Subdivision\+Point} $\ast$ \hyperlink{classShipCAD_1_1SubdivisionFace_a5da55a479cd54b90fc0ec5d0bedb9279}{get\+Last\+Point} () const 
\begin{DoxyCompactList}\small\item\em get last point in face \end{DoxyCompactList}\item 
\hyperlink{classShipCAD_1_1SubdivisionPoint}{Subdivision\+Point} $\ast$ \hyperlink{classShipCAD_1_1SubdivisionFace_aeb9c6f01f3896dc39819265922a04892}{calculate\+Face\+Point} ()
\begin{DoxyCompactList}\small\item\em Get point on center of face for subdivision. \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{classShipCAD_1_1SubdivisionFace_a13b147bdc2d5fda0dcbc6de240bc05cd}{index\+Of\+Point} (const \hyperlink{classShipCAD_1_1SubdivisionPoint}{Subdivision\+Point} $\ast$pt) const 
\begin{DoxyCompactList}\small\item\em get index of point for this face \end{DoxyCompactList}\item 
float \hyperlink{classShipCAD_1_1SubdivisionFace_a1f27fc04bf353dd6295da574fa97c1f8}{get\+Area} () const 
\begin{DoxyCompactList}\small\item\em calculate the area of this face \end{DoxyCompactList}\item 
Q\+Vector3D \hyperlink{classShipCAD_1_1SubdivisionFace_ab22c43ec3d209a9f7b0b9bfe5d609508}{get\+Face\+Center} () const 
\begin{DoxyCompactList}\small\item\em get coordinates of the center of the face \end{DoxyCompactList}\item 
Q\+Vector3D \hyperlink{classShipCAD_1_1SubdivisionFace_a94b07cf08781a9d80caf14a8f97df148}{get\+Face\+Normal} () const 
\begin{DoxyCompactList}\small\item\em get coordinates of the face normal \end{DoxyCompactList}\item 
bool \hyperlink{classShipCAD_1_1SubdivisionFace_aba3fbf26d70b4eb3ef245c7f7cb16e03}{intersect\+With\+Ray} (const \hyperlink{structShipCAD_1_1PickRay}{Pick\+Ray} \&ray) const 
\begin{DoxyCompactList}\small\item\em does a ray intersect this face \end{DoxyCompactList}\item 
virtual void \hyperlink{classShipCAD_1_1SubdivisionFace_aa5bd261ae5fc0a1c7fe8cc5328b8477f}{dump} (std\+::ostream \&os, const char $\ast$prefix=\char`\"{}\char`\"{}) const 
\begin{DoxyCompactList}\small\item\em print out the element to a stream \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \hyperlink{classShipCAD_1_1SubdivisionFace}{Subdivision\+Face} $\ast$ \hyperlink{classShipCAD_1_1SubdivisionFace_a4a6f182fa7e5cf63fc95c7614805f136}{construct} (\hyperlink{classShipCAD_1_1SubdivisionSurface}{Subdivision\+Surface} $\ast$owner)
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classShipCAD_1_1SubdivisionFace_ab2f647963b552728f40d8c329318676e}{priv\+\_\+dump} (std\+::ostream \&os, const char $\ast$prefix) const 
\item 
void \hyperlink{classShipCAD_1_1SubdivisionFace_a5399f7ec8ed458f6dbc733688c006cf8}{edge\+Check} (\hyperlink{classShipCAD_1_1SubdivisionPoint}{Subdivision\+Point} $\ast$p1, \hyperlink{classShipCAD_1_1SubdivisionPoint}{Subdivision\+Point} $\ast$p2, bool crease, bool controledge, \hyperlink{classShipCAD_1_1SubdivisionControlCurve}{Subdivision\+Control\+Curve} $\ast$curve, std\+::vector$<$ \hyperlink{classShipCAD_1_1SubdivisionEdge}{Subdivision\+Edge} $\ast$ $>$ \&interioredges, std\+::vector$<$ \hyperlink{classShipCAD_1_1SubdivisionEdge}{Subdivision\+Edge} $\ast$ $>$ \&controledges)
\begin{DoxyCompactList}\small\item\em check for edge between points \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
std\+::vector$<$ \hyperlink{classShipCAD_1_1SubdivisionPoint}{Subdivision\+Point} $\ast$ $>$ \hyperlink{classShipCAD_1_1SubdivisionFace_ae1178fe10860c57e3e54a397b4dc7b4b}{\+\_\+points}
\end{DoxyCompactItemize}


\subsection{Detailed Description}


Definition at line 58 of file subdivface.\+h.



\subsection{Constructor \& Destructor Documentation}
\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!Subdivision\+Face@{Subdivision\+Face}}
\index{Subdivision\+Face@{Subdivision\+Face}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{Subdivision\+Face(\+Subdivision\+Surface $\ast$owner)}{SubdivisionFace(SubdivisionSurface *owner)}}]{\setlength{\rightskip}{0pt plus 5cm}Subdivision\+Face\+::\+Subdivision\+Face (
\begin{DoxyParamCaption}
\item[{{\bf Subdivision\+Surface} $\ast$}]{owner}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [explicit]}}\hypertarget{classShipCAD_1_1SubdivisionFace_a082f81f7a5750f7e53ed5a92ddc82350}{}\label{classShipCAD_1_1SubdivisionFace_a082f81f7a5750f7e53ed5a92ddc82350}


Constructor. 


\begin{DoxyParams}{Parameters}
{\em owner} & parent surface \\
\hline
\end{DoxyParams}


Definition at line 60 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!````~Subdivision\+Face@{$\sim$\+Subdivision\+Face}}
\index{````~Subdivision\+Face@{$\sim$\+Subdivision\+Face}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{$\sim$\+Subdivision\+Face()}{~SubdivisionFace()}}]{\setlength{\rightskip}{0pt plus 5cm}virtual Ship\+C\+A\+D\+::\+Subdivision\+Face\+::$\sim$\+Subdivision\+Face (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}\hypertarget{classShipCAD_1_1SubdivisionFace_a8d6c25b6b03eddb875c25e8cee6ca976}{}\label{classShipCAD_1_1SubdivisionFace_a8d6c25b6b03eddb875c25e8cee6ca976}


Definition at line 67 of file subdivface.\+h.



\subsection{Member Function Documentation}
\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!add\+Point@{add\+Point}}
\index{add\+Point@{add\+Point}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{add\+Point(\+Subdivision\+Point $\ast$point)}{addPoint(SubdivisionPoint *point)}}]{\setlength{\rightskip}{0pt plus 5cm}void Subdivision\+Face\+::add\+Point (
\begin{DoxyParamCaption}
\item[{{\bf Subdivision\+Point} $\ast$}]{point}
\end{DoxyParamCaption}
)}\hypertarget{classShipCAD_1_1SubdivisionFace_a553df49a1137f89d2df2846ffca74842}{}\label{classShipCAD_1_1SubdivisionFace_a553df49a1137f89d2df2846ffca74842}


add a point to the face 


\begin{DoxyParams}{Parameters}
{\em point} & point to add \\
\hline
\end{DoxyParams}


Definition at line 161 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!calculate\+Face\+Point@{calculate\+Face\+Point}}
\index{calculate\+Face\+Point@{calculate\+Face\+Point}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{calculate\+Face\+Point()}{calculateFacePoint()}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Subdivision\+Point} $\ast$ Subdivision\+Face\+::calculate\+Face\+Point (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\hypertarget{classShipCAD_1_1SubdivisionFace_aeb9c6f01f3896dc39819265922a04892}{}\label{classShipCAD_1_1SubdivisionFace_aeb9c6f01f3896dc39819265922a04892}


Get point on center of face for subdivision. 

When subdividing a face, each edge is split, and a point is put in the center of the face, then all are connected and new faces created. If the face is a triangle and we are not using fv\+Catmull\+Clark, then a center point is not created. The face is then divided into triangles, instead of quadrilateral faces. In that case this returns a null point

\begin{DoxyReturn}{Returns}
the point at center of face, or 0 if triangle and not using fv\+Catmull\+Clark, or the number of face points is less than 3 
\end{DoxyReturn}


Definition at line 213 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!clear@{clear}}
\index{clear@{clear}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{clear()}{clear()}}]{\setlength{\rightskip}{0pt plus 5cm}void Subdivision\+Face\+::clear (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\hypertarget{classShipCAD_1_1SubdivisionFace_a413ae7e76f559780c8a69e998974fb75}{}\label{classShipCAD_1_1SubdivisionFace_a413ae7e76f559780c8a69e998974fb75}


reset point attributes to default values 



Implements \hyperlink{classShipCAD_1_1SubdivisionBase_a851bb7f1931f9dd6e53b6f9df7b5b352}{Ship\+C\+A\+D\+::\+Subdivision\+Base}.



Reimplemented in \hyperlink{classShipCAD_1_1SubdivisionControlFace_ad168e31f0ef2537b3cd0f58b0c1c54e2}{Ship\+C\+A\+D\+::\+Subdivision\+Control\+Face}.



Definition at line 231 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!construct@{construct}}
\index{construct@{construct}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{construct(\+Subdivision\+Surface $\ast$owner)}{construct(SubdivisionSurface *owner)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Subdivision\+Face} $\ast$ Subdivision\+Face\+::construct (
\begin{DoxyParamCaption}
\item[{{\bf Subdivision\+Surface} $\ast$}]{owner}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{classShipCAD_1_1SubdivisionFace_a4a6f182fa7e5cf63fc95c7614805f136}{}\label{classShipCAD_1_1SubdivisionFace_a4a6f182fa7e5cf63fc95c7614805f136}


Definition at line 54 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!dump@{dump}}
\index{dump@{dump}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{dump(std\+::ostream \&os, const char $\ast$prefix="""") const }{dump(std::ostream &os, const char *prefix="") const }}]{\setlength{\rightskip}{0pt plus 5cm}void Subdivision\+Face\+::dump (
\begin{DoxyParamCaption}
\item[{std\+::ostream \&}]{os, }
\item[{const char $\ast$}]{prefix = {\ttfamily \char`\"{}\char`\"{}}}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\hypertarget{classShipCAD_1_1SubdivisionFace_aa5bd261ae5fc0a1c7fe8cc5328b8477f}{}\label{classShipCAD_1_1SubdivisionFace_aa5bd261ae5fc0a1c7fe8cc5328b8477f}


print out the element to a stream 


\begin{DoxyParams}{Parameters}
{\em os} & the output stream \\
\hline
{\em prefix} & string to prefix on each line output \\
\hline
\end{DoxyParams}


Reimplemented from \hyperlink{classShipCAD_1_1SubdivisionBase_a7807e64ac8d2acc3da572e03cf0523b6}{Ship\+C\+A\+D\+::\+Subdivision\+Base}.



Reimplemented in \hyperlink{classShipCAD_1_1SubdivisionControlFace_a947868fba3e9bb6c587847fb9245c9ff}{Ship\+C\+A\+D\+::\+Subdivision\+Control\+Face}.



Definition at line 412 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!edge\+Check@{edge\+Check}}
\index{edge\+Check@{edge\+Check}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{edge\+Check(\+Subdivision\+Point $\ast$p1, Subdivision\+Point $\ast$p2, bool crease, bool controledge, Subdivision\+Control\+Curve $\ast$curve, std\+::vector$<$ Subdivision\+Edge $\ast$ $>$ \&interioredges, std\+::vector$<$ Subdivision\+Edge $\ast$ $>$ \&controledges)}{edgeCheck(SubdivisionPoint *p1, SubdivisionPoint *p2, bool crease, bool controledge, SubdivisionControlCurve *curve, std::vector< SubdivisionEdge * > &interioredges, std::vector< SubdivisionEdge * > &controledges)}}]{\setlength{\rightskip}{0pt plus 5cm}void Subdivision\+Face\+::edge\+Check (
\begin{DoxyParamCaption}
\item[{{\bf Subdivision\+Point} $\ast$}]{p1, }
\item[{{\bf Subdivision\+Point} $\ast$}]{p2, }
\item[{bool}]{crease, }
\item[{bool}]{controledge, }
\item[{{\bf Subdivision\+Control\+Curve} $\ast$}]{curve, }
\item[{std\+::vector$<$ {\bf Subdivision\+Edge} $\ast$ $>$ \&}]{interioredges, }
\item[{std\+::vector$<$ {\bf Subdivision\+Edge} $\ast$ $>$ \&}]{controledges}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}\hypertarget{classShipCAD_1_1SubdivisionFace_a5399f7ec8ed458f6dbc733688c006cf8}{}\label{classShipCAD_1_1SubdivisionFace_a5399f7ec8ed458f6dbc733688c006cf8}


check for edge between points 

This method will create edges between 2 points if it doesn\textquotesingle{}t exist.


\begin{DoxyParams}{Parameters}
{\em p1} & start point of edge \\
\hline
{\em p2} & end point of edge \\
\hline
{\em crease} & whether this edge is a crease \\
\hline
{\em controledge} & whether this edge is a control edge \\
\hline
{\em curve} & if edge is a controledge, then pass the curve to be attached \\
\hline
{\em interioredges} & if this edge is an interior edge, add it to this list \\
\hline
{\em controledges} & if this edge is a control, add it to this list \\
\hline
\end{DoxyParams}


Definition at line 245 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!flip\+Normal@{flip\+Normal}}
\index{flip\+Normal@{flip\+Normal}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{flip\+Normal()}{flipNormal()}}]{\setlength{\rightskip}{0pt plus 5cm}void Subdivision\+Face\+::flip\+Normal (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\hypertarget{classShipCAD_1_1SubdivisionFace_a16d5e005d1c7c847ccf9ba72b67142fa}{}\label{classShipCAD_1_1SubdivisionFace_a16d5e005d1c7c847ccf9ba72b67142fa}


swap normal vector to other face 



Definition at line 236 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!get\+Area@{get\+Area}}
\index{get\+Area@{get\+Area}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{get\+Area() const }{getArea() const }}]{\setlength{\rightskip}{0pt plus 5cm}float Subdivision\+Face\+::get\+Area (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\hypertarget{classShipCAD_1_1SubdivisionFace_a1f27fc04bf353dd6295da574fa97c1f8}{}\label{classShipCAD_1_1SubdivisionFace_a1f27fc04bf353dd6295da574fa97c1f8}


calculate the area of this face 



Definition at line 93 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!get\+Face\+Center@{get\+Face\+Center}}
\index{get\+Face\+Center@{get\+Face\+Center}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{get\+Face\+Center() const }{getFaceCenter() const }}]{\setlength{\rightskip}{0pt plus 5cm}Q\+Vector3D Subdivision\+Face\+::get\+Face\+Center (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\hypertarget{classShipCAD_1_1SubdivisionFace_ab22c43ec3d209a9f7b0b9bfe5d609508}{}\label{classShipCAD_1_1SubdivisionFace_ab22c43ec3d209a9f7b0b9bfe5d609508}


get coordinates of the center of the face 

\begin{DoxyReturn}{Returns}
coordinates of the face center 
\end{DoxyReturn}


Definition at line 103 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!get\+Face\+Normal@{get\+Face\+Normal}}
\index{get\+Face\+Normal@{get\+Face\+Normal}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{get\+Face\+Normal() const }{getFaceNormal() const }}]{\setlength{\rightskip}{0pt plus 5cm}Q\+Vector3D Subdivision\+Face\+::get\+Face\+Normal (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\hypertarget{classShipCAD_1_1SubdivisionFace_a94b07cf08781a9d80caf14a8f97df148}{}\label{classShipCAD_1_1SubdivisionFace_a94b07cf08781a9d80caf14a8f97df148}


get coordinates of the face normal 

\begin{DoxyReturn}{Returns}
coordinates of the face normal 
\end{DoxyReturn}


Definition at line 116 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!get\+Last\+Point@{get\+Last\+Point}}
\index{get\+Last\+Point@{get\+Last\+Point}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{get\+Last\+Point() const }{getLastPoint() const }}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Subdivision\+Point} $\ast$ Subdivision\+Face\+::get\+Last\+Point (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\hypertarget{classShipCAD_1_1SubdivisionFace_a5da55a479cd54b90fc0ec5d0bedb9279}{}\label{classShipCAD_1_1SubdivisionFace_a5da55a479cd54b90fc0ec5d0bedb9279}


get last point in face 

\begin{DoxyReturn}{Returns}
the last point in the face 
\end{DoxyReturn}


Definition at line 154 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!get\+Point@{get\+Point}}
\index{get\+Point@{get\+Point}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{get\+Point(size\+\_\+t index) const }{getPoint(size_t index) const }}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Subdivision\+Point} $\ast$ Subdivision\+Face\+::get\+Point (
\begin{DoxyParamCaption}
\item[{size\+\_\+t}]{index}
\end{DoxyParamCaption}
) const}\hypertarget{classShipCAD_1_1SubdivisionFace_a68bc7676c4f254ddb19e04f8cb5ba76f}{}\label{classShipCAD_1_1SubdivisionFace_a68bc7676c4f254ddb19e04f8cb5ba76f}


get face point 


\begin{DoxyParams}{Parameters}
{\em index} & index of point to get \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the point at index 
\end{DoxyReturn}


Definition at line 147 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!has\+Point@{has\+Point}}
\index{has\+Point@{has\+Point}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{has\+Point(const Subdivision\+Point $\ast$pt) const }{hasPoint(const SubdivisionPoint *pt) const }}]{\setlength{\rightskip}{0pt plus 5cm}bool Subdivision\+Face\+::has\+Point (
\begin{DoxyParamCaption}
\item[{const {\bf Subdivision\+Point} $\ast$}]{pt}
\end{DoxyParamCaption}
) const}\hypertarget{classShipCAD_1_1SubdivisionFace_a02d048ba8de79787bc692e5f20fd276e}{}\label{classShipCAD_1_1SubdivisionFace_a02d048ba8de79787bc692e5f20fd276e}


does the face have this point 


\begin{DoxyParams}{Parameters}
{\em pt} & the point to check \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if the point is part of the face 
\end{DoxyReturn}


Definition at line 142 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!index\+Of\+Point@{index\+Of\+Point}}
\index{index\+Of\+Point@{index\+Of\+Point}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{index\+Of\+Point(const Subdivision\+Point $\ast$pt) const }{indexOfPoint(const SubdivisionPoint *pt) const }}]{\setlength{\rightskip}{0pt plus 5cm}size\+\_\+t Subdivision\+Face\+::index\+Of\+Point (
\begin{DoxyParamCaption}
\item[{const {\bf Subdivision\+Point} $\ast$}]{pt}
\end{DoxyParamCaption}
) const}\hypertarget{classShipCAD_1_1SubdivisionFace_a13b147bdc2d5fda0dcbc6de240bc05cd}{}\label{classShipCAD_1_1SubdivisionFace_a13b147bdc2d5fda0dcbc6de240bc05cd}


get index of point for this face 


\begin{DoxyParams}{Parameters}
{\em pt} & point to find in face \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
index of that point in face, same as number\+Of\+Points if point not in face 
\end{DoxyReturn}


Definition at line 66 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!insert\+Point@{insert\+Point}}
\index{insert\+Point@{insert\+Point}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{insert\+Point(size\+\_\+t index, Subdivision\+Point $\ast$point)}{insertPoint(size_t index, SubdivisionPoint *point)}}]{\setlength{\rightskip}{0pt plus 5cm}void Subdivision\+Face\+::insert\+Point (
\begin{DoxyParamCaption}
\item[{size\+\_\+t}]{index, }
\item[{{\bf Subdivision\+Point} $\ast$}]{point}
\end{DoxyParamCaption}
)}\hypertarget{classShipCAD_1_1SubdivisionFace_aacd383eb085c4f6b92db89e25be6b3a1}{}\label{classShipCAD_1_1SubdivisionFace_aacd383eb085c4f6b92db89e25be6b3a1}


insert a new point into the face 


\begin{DoxyParams}{Parameters}
{\em index} & insert the new point at this index \\
\hline
{\em point} & point to add to face \\
\hline
\end{DoxyParams}


Definition at line 72 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!intersect\+With\+Ray@{intersect\+With\+Ray}}
\index{intersect\+With\+Ray@{intersect\+With\+Ray}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{intersect\+With\+Ray(const Pick\+Ray \&ray) const }{intersectWithRay(const PickRay &ray) const }}]{\setlength{\rightskip}{0pt plus 5cm}bool Subdivision\+Face\+::intersect\+With\+Ray (
\begin{DoxyParamCaption}
\item[{const {\bf Pick\+Ray} \&}]{ray}
\end{DoxyParamCaption}
) const}\hypertarget{classShipCAD_1_1SubdivisionFace_aba3fbf26d70b4eb3ef245c7f7cb16e03}{}\label{classShipCAD_1_1SubdivisionFace_aba3fbf26d70b4eb3ef245c7f7cb16e03}


does a ray intersect this face 

\begin{DoxyReturn}{Returns}
true if ray intersects face 
\end{DoxyReturn}


Definition at line 198 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!number\+Of\+Points@{number\+Of\+Points}}
\index{number\+Of\+Points@{number\+Of\+Points}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{number\+Of\+Points() const }{numberOfPoints() const }}]{\setlength{\rightskip}{0pt plus 5cm}size\+\_\+t Ship\+C\+A\+D\+::\+Subdivision\+Face\+::number\+Of\+Points (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}\hypertarget{classShipCAD_1_1SubdivisionFace_abd79b6dfadd10befe94b524a34063b27}{}\label{classShipCAD_1_1SubdivisionFace_abd79b6dfadd10befe94b524a34063b27}


number of points for this face 

\begin{DoxyReturn}{Returns}
number of points for this face 
\end{DoxyReturn}


Definition at line 122 of file subdivface.\+h.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!priv\+\_\+dump@{priv\+\_\+dump}}
\index{priv\+\_\+dump@{priv\+\_\+dump}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{priv\+\_\+dump(std\+::ostream \&os, const char $\ast$prefix) const }{priv_dump(std::ostream &os, const char *prefix) const }}]{\setlength{\rightskip}{0pt plus 5cm}void Subdivision\+Face\+::priv\+\_\+dump (
\begin{DoxyParamCaption}
\item[{std\+::ostream \&}]{os, }
\item[{const char $\ast$}]{prefix}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [protected]}}\hypertarget{classShipCAD_1_1SubdivisionFace_ab2f647963b552728f40d8c329318676e}{}\label{classShipCAD_1_1SubdivisionFace_ab2f647963b552728f40d8c329318676e}


Definition at line 419 of file subdivface.\+cpp.

\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!subdivide@{subdivide}}
\index{subdivide@{subdivide}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{subdivide(bool controlface, std\+::vector$<$ std\+::pair$<$ Subdivision\+Point $\ast$, Subdivision\+Point $\ast$ $>$ $>$ \&vertexpoints, std\+::vector$<$ std\+::pair$<$ Subdivision\+Edge $\ast$, Subdivision\+Point $\ast$ $>$ $>$ \&edgepoints, std\+::vector$<$ std\+::pair$<$ Subdivision\+Face $\ast$, Subdivision\+Point $\ast$ $>$ $>$ \&facepoints, std\+::vector$<$ Subdivision\+Edge $\ast$ $>$ \&interioredges, std\+::vector$<$ Subdivision\+Edge $\ast$ $>$ \&controledges, std\+::vector$<$ Subdivision\+Face $\ast$ $>$ \&dest)}{subdivide(bool controlface, std::vector< std::pair< SubdivisionPoint *, SubdivisionPoint * > > &vertexpoints, std::vector< std::pair< SubdivisionEdge *, SubdivisionPoint * > > &edgepoints, std::vector< std::pair< SubdivisionFace *, SubdivisionPoint * > > &facepoints, std::vector< SubdivisionEdge * > &interioredges, std::vector< SubdivisionEdge * > &controledges, std::vector< SubdivisionFace * > &dest)}}]{\setlength{\rightskip}{0pt plus 5cm}void Subdivision\+Face\+::subdivide (
\begin{DoxyParamCaption}
\item[{bool}]{controlface, }
\item[{std\+::vector$<$ std\+::pair$<$ {\bf Subdivision\+Point} $\ast$, {\bf Subdivision\+Point} $\ast$ $>$ $>$ \&}]{vertexpoints, }
\item[{std\+::vector$<$ std\+::pair$<$ {\bf Subdivision\+Edge} $\ast$, {\bf Subdivision\+Point} $\ast$ $>$ $>$ \&}]{edgepoints, }
\item[{std\+::vector$<$ std\+::pair$<$ {\bf Subdivision\+Face} $\ast$, {\bf Subdivision\+Point} $\ast$ $>$ $>$ \&}]{facepoints, }
\item[{std\+::vector$<$ {\bf Subdivision\+Edge} $\ast$ $>$ \&}]{interioredges, }
\item[{std\+::vector$<$ {\bf Subdivision\+Edge} $\ast$ $>$ \&}]{controledges, }
\item[{std\+::vector$<$ {\bf Subdivision\+Face} $\ast$ $>$ \&}]{dest}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\hypertarget{classShipCAD_1_1SubdivisionFace_a934edbf44e524a2ec250f896c3cc182d}{}\label{classShipCAD_1_1SubdivisionFace_a934edbf44e524a2ec250f896c3cc182d}


subdivide the face 


\begin{DoxyParams}{Parameters}
{\em vertexpoints} & list of Point $<$-\/$>$ Point pairs. The first point is a vertex point on this face, the second point is a copy of this point to use in the new subdivided faces\\
\hline
{\em edgepoints} & list of Edge $<$-\/$>$ Point pairs. The edge is an edge on this face. The point is the midpoint of that edge to use in the new subdivided faces\\
\hline
{\em facepoints} & list of Face $<$-\/$>$ Point pairs.\\
\hline
{\em interioredges} & after subdivision, the new interior edges of the newly created faces will be added to this list\\
\hline
{\em controledges} & after subdivision, the new edges descended from control edges will be added to this list\\
\hline
{\em dest} & the new subdivided faces will be added to this list \\
\hline
\end{DoxyParams}


Definition at line 279 of file subdivface.\+cpp.



\subsection{Member Data Documentation}
\index{Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}!\+\_\+points@{\+\_\+points}}
\index{\+\_\+points@{\+\_\+points}!Ship\+C\+A\+D\+::\+Subdivision\+Face@{Ship\+C\+A\+D\+::\+Subdivision\+Face}}
\subsubsection[{\texorpdfstring{\+\_\+points}{_points}}]{\setlength{\rightskip}{0pt plus 5cm}std\+::vector$<${\bf Subdivision\+Point}$\ast$$>$ Ship\+C\+A\+D\+::\+Subdivision\+Face\+::\+\_\+points\hspace{0.3cm}{\ttfamily [protected]}}\hypertarget{classShipCAD_1_1SubdivisionFace_ae1178fe10860c57e3e54a397b4dc7b4b}{}\label{classShipCAD_1_1SubdivisionFace_ae1178fe10860c57e3e54a397b4dc7b4b}
points belonging to this face 

Definition at line 211 of file subdivface.\+h.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Ship\+C\+A\+Dlib/\hyperlink{subdivface_8h}{subdivface.\+h}\item 
Ship\+C\+A\+Dlib/\hyperlink{subdivface_8cpp}{subdivface.\+cpp}\end{DoxyCompactItemize}
